Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

156
Views
Diferenciar el constructor de clase de la función "normal"

Si tengo dos nombres de variables A y b , mientras que A es un constructor de clase y b es una función, ¿cómo escribo una función que tome el nombre como parámetro y distinga si es un constructor de clase o no?

O dicho de otro modo, ¿cómo sé si tengo que llamar a la función con el operador new o no?

 class A{ constructor(){ } } function b(){ } isClass(arg:(new ()=>A) | Function):boolean{ // some code that returns true if arg is a class } isClass(b) // false isClass(A) // true

Hay una solución que se me ocurrió:

 arg.toString().startsWith("class")

Esto funciona porque arg.toString() devuelve la definición de arg , en este ejemplo algo así como class A{constructor(){}} para A y function b(){} para b . Mi solución funciona, pero puedo imaginar que haya algo mejor que eso.

El uso del operador typeof devuelve "función" tanto para A como para b , y arg.prototype solo no está definido si b es una función de flecha.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!